﻿using System;

namespace Oddo.Concept.Crm.Common.Interfaces
{
    /// <summary>
    /// Message display service interface contract
    /// </summary>
    public interface IMessageDisplayServices
    {
        /// <summary>
        /// Affiche un message discret. Typiquement dans la bar de status
        /// </summary>
        /// <param name="message">Le message à afficher</param>
        void ShowDiscret(string message);
        /// <summary>
        /// Affiche un message
        /// </summary>
        /// <param name="message">Le message a afficher</param>
        /// <param name="title">Le titre du message</param>
        void ShowMessage(string message, string title);
        /// <summary>
        /// Affiche une question
        /// </summary>
        /// <param name="message">Le message à afficher</param>
        /// <param name="title">Le titre du message</param>
        /// <returns>True ou false ou null</returns>
        bool? ShowQuestion(string message, string title);
        /// <summary>
        /// Affiche un message d'erreur
        /// </summary>
        /// <param name="message">Le message a afficher</param>
        /// <param name="title">Le titre du message</param>
        void ShowError(string message, string title);
        /// <summary>
        /// Affiche un message d'erreur
        /// </summary>
        /// <param name="message">Le texte du message d'erreur</param>
        /// <param name="title">Le titre de la fenetre d'erreur</param>
        /// <param name="allowSendReport">Autorise l'envoi d'un rapport d'erreur</param>
        /// <param name="exception">Exception liée</param>
        void ShowError(string message, string title, bool allowSendReport, Exception exception);
    }
}